package ASAInstruction;

import ASAExpression.ASAExpr;
import exceptions.ExecutionException;

/**
 * Classe representant l'instruction permettant
 * d'afficher un message dans la console 
 * @author O.Riad
 * @author D.Romain
 *
 */
public class ASAInstructPrint extends ASAInstruction {

    private ASAExpr e1;
    private String regex;

    /**
     * Contructeur prenant en 
     * paramètre une expression
     * @param e1 expression à afficher
     */
    public ASAInstructPrint(ASAExpr e1) {
        this.e1 = e1;
        this.regex = null;
    }

    /**
     * Contructeur prenant en 
     * paramètre une chaîne de caractères
     * @param e1 chaîne de caractères à afficher
     */
    public ASAInstructPrint(String regexp) {
        this.e1 = null;
        this.regex = regexp.replace("\"", "");
    }

    /**
     * Execute l'affichage selon
     * que ce soit l'expression ou la chaîne 
     * de caractères qui a été chargée
     * @return 1 si bien exectuté
     * @throws ExecutionException 
     */
    @Override
    public int execute() throws ExecutionException {
        if (this.e1 != null) {
            System.out.println(this.e1.evalue());
        }
        if(this.regex != null){
            System.out.println(this.regex);
        }
        return 1;
    }
}
